home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / TPLY30.ARJ / READ.ME < prev    next >
Text File  |  1991-06-17  |  4KB  |  77 lines

  1.  
  2. TP Lex and Yacc Version 3.0 as of April 1991
  3. Copyright (c) 1990,91 by Albert Graef, Schillerstrasse 18, 6509 Schornsheim,
  4. Germany (ag@informatik.mathematik.uni-mainz.de)
  5. All rights reserved
  6.  
  7. This disk contains TP Lex and Yacc, compiler generator tools for Borland's
  8. Turbo Pascal (4.0 or later), running under MS-DOS (3.0 or later).
  9.  
  10. (Turbo Pascal is a trademark of Borland International.)
  11.  
  12. The TP Lex and Yacc software is licensed free of charge and may be copied
  13. and redistributed for non-profit purposes. There is no warranty of any kind.
  14. In particular, I do not guarantee that the software is free of bugs, or fits
  15. some particular purpose, and I take no responsibility for damages or any
  16. other consequences of its use.
  17.  
  18. The manual is contained in the file TPLY.DOC on the disk. It can be printed
  19. using the DOS command `copy tply.doc prn'. (A TeX'ed version of the manual
  20. is available from the author.) The manual provides a rather terse description
  21. of TP Lex and Yacc and you should follow the references given there for
  22. further reading.
  23.  
  24. As distributed, the TP Lex and Yacc library units (LEXLIB.TPU and
  25. YACCLIB.TPU) are compiled with Turbo Pascal 6.0; to use them with other
  26. Turbo Pascal versions you probably have to recompile these units (sources
  27. LEXLIB.PAS and YACCLIB.PAS on the distribution disk).
  28.  
  29. Older versions of TP Lex and Yacc are no longer supported. Most programs
  30. written for TP Lex and Yacc 2.0 should not to be too difficult to adapt
  31. to the new version. The major differences are:
  32.  
  33. - The TP Lex library routine `start' is now used to set the start state of
  34.   the lexical analyzer (in V2.0, this routine was named `begin_').
  35.  
  36. - TP Lex no longer supports character tables (%T).
  37.  
  38. - TP Lex now provides an optimization option which causes TP Lex to generate
  39.   minimal DFA's, and a verbose option to generate a readable description
  40.   (.LST file) of the constructed DFA.
  41.  
  42. - The TP Yacc error message printing routine is now named `yyerror' (as in
  43.   the UNIX version); in V2.0 it was named `yymsg'. The V2.0 routine named
  44.   `yyerror' (which triggered error recovery in the parser) is now named
  45.   `yyerrlab'.
  46.  
  47. - TP Yacc no longer supports %union definitions; instead, value types are
  48.   specified directly using tags of the form <type-identifier> in %token
  49.   and %type definitions. TP Yacc automatically generates a suitable
  50.   variant record type (YYSType) from the type definitions in the grammar.
  51.  
  52. - TP Yacc no longer generates a separate header (.H) file; all definitions
  53.   for the lexical analyzer (token numbers, yylval variable) are put into
  54.   the .PAS output file. Hence the lexical analyzer should be included right
  55.   behind the parser (e.g., in the auxiliary procedures section of the Yacc
  56.   grammar); it cannot be put into a separate unit any more. Although this
  57.   might seem a little restrictive, I decided to use this scheme in order to
  58.   facilitate communication between parser and lexical analyzer, and I think
  59.   that it actually simplifies matters for the programmer.
  60.  
  61. - TP Yacc provides an option to generate the parser description (.LST file)
  62.   and an option to trigger debugging output of the parser.
  63.  
  64. - The code templates for the TP Lex and Yacc output files are now supplied
  65.   as ASCII files. This gives you the possibility to adapt the yylex and
  66.   yyparse routines to your applications.
  67.  
  68. - The DFA and LALR parser construction algorithms have been reimplemented
  69.   from scratch, and they are now far more efficient than in the 2.0
  70.   version.
  71.  
  72. Please also note my new email address. I can now be reached at:
  73.   ag@informatik.mathematik.uni-mainz.de
  74.  
  75. 6-17-91 Albert Graef
  76.  
  77.